/**
 * 杨辉三角
 *
 * 描述
 * KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣，他想知道杨辉三角的前n行，
 * 请编程帮他解答。杨辉三角，本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。
 * 其性质包括：每行的端点数为1， 一个数也为1；每个数等于它左上方和上方的两数之和。
 *
 * 输入描述：
 * 第一行包含一个整数数n。 (1≤n≤30)
 *
 * 输出描述：
 * 包含n行，为杨辉三角的前n行，每个数输出域宽为5。
 */

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 也是来吃家的题目了
 * 时间复杂度 : O(n ^ 2)
 * 空间复杂度 : O(n ^ 2)
 */

public class Main {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        int n = in.nextInt();

        List<List<Integer>> lists = new ArrayList<>();

        for (int i = 0; i < n; i++) {

            List<Integer> list = new ArrayList<>();
            for (int j = 0; j <= i; j++) {

                if (i == j || j == 0) {
                    list.add(1);
                } else {
                    list.add(lists.get(i - 1).get(j) + lists.get(i - 1).get(j - 1));
                }

                // 这里直接打印了, 不用后面再遍历一次了
                // 这里要用格式打印
                System.out.printf("%5d", list.get(j));
            }

            lists.add(list);

            // 换行
            System.out.println();
        }
    }
}